1. Field of the Invention
The present invention relates to peer-to-peer networks, and more specifically to managing the efficient distribution of content over the peer-to-peer network.
2. Description of the Related Art
A decentralized computing environment is defined by a number of computing systems interconnected to communicate with one another, wherein each computing system can perform both client and server functions. A peer-to-peer (P2P) network represents a decentralized computing environment in which each computing system within the P2P network is defined as a peer of every other computing system within the network. For discussion purposes, each peer computing system within the P2P network is referred to as a node. Additionally, each node within the P2P network is configured to execute software having substantially equivalent functionality. Therefore, each node is enabled to act as both a provider and a user of data and services across the P2P network.
A common activity across a P2P network is to distribute content to certain requesting nodes of the P2P network. However, the distribution of content can be very processor intensive and can induce delays for requesting nodes to receive the content. For example, if a node requests video content, that content will have to be provided and transcoded into the format that the requesting node can use. The node that is assigned to transcode the content for the requesting node can be selected from any number of available nodes on the P2P network.
In the prior art, there are a number of techniques for assigning certain nodes to transcode content for a requesting node, however, these algorithms are typically very arbitrary and do not take into account the capabilities of the transcoding node with respect to the requesting node. Due to this arbitrary assignment, the requesting node may not obtain the content in an efficient manner, and the transcoding node may become overloaded with tasks that could have been more efficiently handled by other nodes in the P2P network.
In view of the foregoing, there is a need for a more comprehensive analysis of requesting nodes and nodes that are assigned to service the requesting nodes.